Driver de Imagem Cliente RGB (cdirgb.h)

Este driver permite o acesso a uma Imagem de Cliente. Trata-se de uma imagem baseada em cores RGB que tem 24 bits por pixel (8 por canal). Ela é usada para implementar desenhos offscreen de alta qualidade, porém é mais lenta que a versão Imagem de Servidor. De fato, ela é um rasterizador, ou seja, ela converte primitivas de vetores em uma representação raster. Todas as primitivas são implementadas pela biblioteca e não são dependentes do sistema (as primitivas da versão Imagem de Servidor dependem do sistema).


Uso

O canvas é criado chamando-se a função cdCreateCanvas(CD_IMAGERGB, Data), após o que outras funções da biblioteca CD podem ser chamadas normalmente. A função cria uma imagem de cliente RGB e, então, um canvas CD. O string de parâmetros Data possui o seguinte formato:

"widthxheight [r g b] -r[resolution]" ou em C "%dx%d %p %p %p -r%g"

Ele deve conter as dimensões do canvas. Width e height são dados em pixels (note o "x" em caixa baixa entre eles). Como opção, você pode especificar os buffers a serem utilizados pelo driver, de forma que possa desenhar sobre uma imagem existente. Pode-se especificar a resolução com o parâmetro -r, o valor defaul é "3.8".

Qualquer quantidade desses canvas pode existir simultaneamente. É importante notar que é preciso chamar a função cdKillCanvas para finalizar o driver de maneira apropriada.

Em CDLUA, pode-se criar o canvas de duas formas, com uma imagem já definida ou sem essa imagem. Com a imagem, deve-se passar como parâmetro uma imagem RGB criada pelas funções cdCreateImageRGB ou cdCreateImageEx em Lua, a resolução deve ser passada como na string acima, em um parâmetro extra depois da imagem. Sem a imagem deve-se passar como parâmetro uma string no formato acima excluindo os ponteiros rgb.

FALHA: na plataforma SunOS, use "%d", ao invés de "%p", devido a uma falha interna da biblioteca run time desse OS.


Funções Exclusivas deste Driver

unsigned char * cdRedImage(cdCanvas* canvas); [em C]

Dá como retorno o buffer de imagem vermelho. O formato do buffer é compatível com a especificação de imagem de cliente da biblioteca CD.

unsigned char * cdGreenImage(cdCanvas* canvas); [em C]

Dá como retorno o buffer de imagem verde. O formato do buffer é compatível com a especificação de imagem de cliente da biblioteca CD.

unsigned char * cdBlueImage(cdCanvas* canvas); [em C]

Dá como retorno o buffer de imagem azul. O formato do buffer é compatível com a especificação de imagem de cliente da biblioteca CD.

cdImageRGB(canvas: canvas_tag) -> (image: imagergb_tag) [em Lua]

Retorna a imagem RGB interna do canvas.


Todas as primitivas são do driver de Simulação, consulte a dcumentação desse driver para maiores informações.

Comportamento das Funções

Controle

Sistema de Coordenadas e Clipping

Cores

Atributos Exclusivos